Cette déclaration :
cursor.execute(sql, multi=True)
crée un itérateur sur les résultats. Il semble qu'il soit paresseux (c'est-à-dire qu'il n'exécute les instructions SQL que si nécessaire). Vous ne demandez jamais les résultats de la deuxième instruction, il n'exécute donc que la première. Essayez :
for _ in cursor.execute(sql, multi=True): pass
En général, il est préférable d'utiliser simplement execute()
séparé appels.