Hola luismaciasalejos,
Algunos comentarios:
Es importante leer la documentación de la versión que usas de MySQL (asumo que usas la versión 5.5.x), esto porque pueden existir diferencias en los comportamientos.
0. Es importante el ENGINE de las tablas temporales para determinar si soportan transacciones.
1. En la documentación se menciona los siguiente
13.1.17. CREATE TABLE Syntax:
Cita: Note
CREATE TABLE does not automatically commit the current active transaction if you use the TEMPORARY keyword.
Por lo que tus tablas temporales se pueden crear dentro de la transacción, sin embargo, personalmente también las crearía fuera a menos que por alguna causa en específico las necesitara dentro de la transacción.
2. Leer la sección
13.3.3. Statements That Cause an Implicit Commit
3. Dentro de una misma transacción puedes tener tablas MyISAM e InnoDB, luego de distintas operaciones (INSERT/UPDATE/DELETE) si aplicas un ROLLBACK solamente las tablas InnoDB serán afectadas, las MyISAM no.
Espero te sea útil.