Sin conocer los números de línea en su código, es difícil saber pero confirma su transacción al final del primer bloque try-catch y luego continúa sin iniciar una nueva transacción en su segundo bloque try-catch.
Agregue $conn->beginTransaction();
al comienzo de su segundo bloque de intento y captura.
EDITAR:usted menciona "Solo quiero que el número de incremento automático no se agregue cuando ocurra un error". No debe confiar en la función de incremento automático para generar una secuencia de números "sin espacios".