Hier werden die üblichen Fragen zu Transaktionen in MySQL beantwortet. Im Wesentlichen musst du START TRANSACTION bzw. BEGIN ausführen, gefolgt von deinen INSERT-Statements und dann entweder COMMIT oder ROLLBACK, abhängig davon ob die INSERTS zu deiner Zufriedenheit ausgeführt wurden.
Dabei ist zu beachten, dass MySQL nur dann automatisch die Transaktion abbricht und ROLLBACK macht, wenn Locking-Fehler auftreten. Sollte ein INSERT z.B. wegen Duplicate Key Entry fehlschlagen, macht MySQL einfach weiter. Du kannst aber mit
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND ROLLBACK;
dafür sorgen, dass bei einem Fehler ein ROLLBACK ausgeführt wird. Willst du deine Applikation/PHP auch wissen lassen, dass wegen eines Fehlers abgebrochen wurde, solltest du
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND BEGIN ROLLBACK; CALL ERROR_ROLLBACK_OCCURRED; END;
verwenden. Dieses Statement musst du natürlich vor deinen INSERTS absetzen.
Soweit die Theorie, wenn ich das Manual richtig verstanden habe. Ausprobiert habe ich das noch nie.