mmm... estaba buscando otra cosa...

, pero van algunas sugerencias:
1. un trigger lo puedes crear con una sintaxis parecida a estas:
Código:
DROP TRIGGER `nombre_trigger`$$
CREATE TRIGGER `nombre_trigger` AFTER INSERT ON `nombre_tabla`
FOR EACH ROW BEGIN
... por aquí lo que necesites ...
END$$
2. digamos que php no tiene nada que ver con los triggers / stored procedures. tú armas los disparadores / funciones/ procedimientos que necesitas y MySQL los maneja. desde php lo único que puedes hacer es tirarle consultas a la base de datos, sean estas de tipo "SELECT * FROM ....", "INSERT INTO ..." o "CALL tu_funcion(param1, ..., paramN)"
3. desde php tú sólo debes:
a. mandar la consulta que inicie la transacción: "START TRANSACTION"
b. mandar la consulta con el insert (mysql se encargará del disparador)
c. mandar la consulta que cierre la transacción iniciada: "COMMIT"
4. NO se puede usar ROLLBACK desde un disparador, he escrito una manera de emular eso en:
http://gustavopardo.com.ar/node/696. Esto producirá un error que impedirá que se ejecute el COMMIT por lo que ninguna modificación se hará efectiva en la bbdd.