Jestem bardzo nowy w PostgreSQL, ale jeden z przykładów w dokumentacji PostgreSQL dla wyzwalaczy / programowania po stronie serwera wygląda na to, że robi dokładnie to, czego szukasz.
Zobacz:http://www.postgresql.org/docs/9.2 /static/trigger-example.html
Fragment ze strony:„Więc wyzwalacz działa jak ograniczenie o wartości niezerowej, ale nie przerywa transakcji. "