Hola Agag.
Creo que debes comenzar por separar las ideas. El dataset ejecutará la sentencia SQL apropiada (insert, update o delete) cuando se llame al método post.
Cuando se llama al método Insert, Delete, Append o Edit, el dataset normalmente llamará primero a su método post si es necesario, antes de intentar realizar la acción propia del método.
Todo esto ocurre en tu propia aplicación.
Los triggers residen en la base de datos, de manera que cuando el motor recibe una sentencia insert/update/delete ejecuta los triggers especificados para la tabla, de acuerdo a su sentencia de creación (before/after) y la sentencia específica.
Podes comprobar que el trigger se dispare y funcione correctamente conectandote via isql o ibExpert. Si el trigger funciona, entonces revisá la lógica de tu programa en delphi. Si no funciona, entonces revisá la lógica del trigger.
Hasta luego.