Utan att känna till radnummer i din kod är det svårt att veta men du genomför din transaktion i slutet av det första försöksfångsblocket och fortsätter sedan utan att starta en ny transaktion i ditt andra försöksfångstblock.
Lägg till $conn->beginTransaction();
i början av ditt andra försök-fånga-block.
EDIT -Du nämner "Jag vill bara att numret för automatisk ökning inte läggs till när fel uppstår". Du bör inte lita på den automatiska ökningsfunktionen för att generera en "gapless" nummersekvens.