Cita: Me da la sensación de que al hacer el cambio de base de datos pierdo la transacción. He hecho pruebas y fallando la segunda consulta de inserción me mantiene los cambios hechos en la primera
En primer lugar, no nos estás aclarando los tipos de tablas que usas. Eso es importante por cuanto las MyISAM no las soportan.
Por otro lado, el comando de inicio de una transacción no es BEGIN, sino START TRANSACTION (ver
13.4.1. Sintaxis de START TRANSACTION, COMMIT y ROLLBACK)
Además, el problema no es que pierdas la transacción. Si se perdiese esa transacción debería generarse un ROLLBACK implícito, por lo que la primera no almacenaría nada, y sí lo hace. Ergo, el ciclo funciona parcialmente. Lo que puede suceder es que el segundo rollback debe también cambiar de base y realizar su rollback respectivo.
¿Lo estás haciendo?