Creo que, según sus respuestas a mis comentarios, realmente no debería preocuparse por manejar manualmente los bloqueos de tablas. InnoDB admite el bloqueo a nivel de fila y con la confirmación automática habilitada (como lo es de manera predeterminada), todas las consultas individuales se manejan de manera transaccional.
Ahora, si tiene varias consultas SQL que deben manejarse como una sola transacción (es decir, actualizar una tabla, luego actualizar otra tabla; ambas tienen éxito o ambas se revierten), entonces deberá iniciar específicamente una transacción y confirmarla o revertirlo después de que se hayan ejecutado las consultas provisionales.
También puede usar SET TRANSACTION
declaración si necesita cambiar el nivel de aislamiento de la transacción (es `REPEATABLE READ1 por defecto).
Para obtener más información, consulte Documentación MySQL