Si hay forma de llamar a un SP desde el trigger, tal como llamas a un procedimiento desde pascal: Pones su nombre y la lista de parámetros, y listo!
Sobre el rollback, no es recomendable (y muchos motores no permiten) que se controle la transacción desde dentro de triggers o sp's. Lo mejor es elevar una excepción y dejar que sea el motor o quien invoca a estas rutinas el que se encargue.
En el caso de una excepción originada desde un trigger, el propio motor deshará todas las acciones originadas por los triggers before/after, restituirá la tabla a su estado previo a la instrucción que dió lugar a esta excepción y devolverá el control (indicando la condición de error) a la aplicación que lo llama. Entonces podrás decidir si continuar la marcha o hacer un rollback de toda la transacción.
Hasta luego.
