En MySQL los comandos que inician y terminan transacciones son START TRANSACTION y COMMIT. ROLLBACK las deshace (
15.10. Bloqueo y modelo de transacciones de InnoDB).
Lo esencial es que deben usarse al inicio del conjunto completo de operaciones que deseas manejar como
operación atómica.
Esto es especialmente importante cunado vas a hacer varios insert que deben ser puestos en secuencia, no tanto en un SELECT. En el SELECT es importante saber cuán importante es la vigencia de la información leída, y si se leerá la información como segura o insegura (de allí el
dirty read).
En otras palabras, si estás leyendo datos que
pueden ser modificados en el proceso y quieres prevenirlo, cuando el usuario en curso los modifique o mande a modificarlos, antes de hacerlo hay que iniciar una transacción, volver a consultar el registro, y según el caso realizar o no la modificación, para luego asentar el cambio.
¿Se entiende hacia dónde va la idea?
No es simplemente que abras y cierres transacciones. Tienes que considerar cómo proceder si la transacción que vas a usar a su vez entra cuando otra está ocurriendo y se inició después de tu lectura inicial.
Mucho de este "despiole" se debe plantear en un diagrama de flujo antes de empezar a programar. Si intentas hacerlo mientras programas tarde o temprano te vas a perder en el código.