To oświadczenie:
cursor.execute(sql, multi=True)
tworzy iterator nad wynikami. Wygląda na to, że jest leniwy (tzn. wykonuje instrukcje SQL tylko w razie potrzeby). Nigdy nie pytasz o wyniki dla drugiej instrukcji, więc wykonujesz tylko pierwszą. Wypróbuj:
for _ in cursor.execute(sql, multi=True): pass
Ogólnie lepiej jest po prostu użyć oddzielnego execute()
połączeń.