En mi post sobre transacciones con varias queries en MySql no comenté la posibilidad de añadir puntos donde, si hay un problema, hacer un rollback a un punto determinado y no perder toda la información. Aunque dependiendo de la transaccióin de MySQL que se esté haciendo puede que sea mejor hacer rollback de dicha transacción. Todos los puntos de la transacción se borran si sale todo bien y se llega a realizar el commit, o si hace un rollback sin referenciar a ningún punto.
Para crear un punto se hace con la sintaxis savepoint y un identificador, si hay otro