Това изявление:
cursor.execute(sql, multi=True)
създава итератор върху резултатите. Изглежда, че е мързелив (т.е. изпълнява SQL изрази само когато е необходимо). Никога не питате за резултатите за втория оператор, така че той изпълнява само първия. Опитайте:
for _ in cursor.execute(sql, multi=True): pass
Като цяло е по-добре просто да използвате отделен execute()
обаждания.