Ohne die Zeilennummern in Ihrem Code zu kennen, ist es schwer zu wissen aber Sie schreiben Ihre Transaktion am Ende des ersten Try-Catch-Blocks fest und fahren dann fort, ohne eine neue Transaktion in Ihrem zweiten Try-Catch-Block zu starten.
Fügen Sie $conn->beginTransaction();
hinzu zu Beginn Ihres zweiten Try-Catch-Blocks.
BEARBEITEN - Sie erwähnen "Ich möchte nur, dass die automatische Inkrementnummer nicht hinzugefügt wird, wenn ein Fehler auftritt". Sie sollten sich nicht auf die Autoinkrement-Funktion verlassen, um eine "lückenlose" Zahlenfolge zu generieren.