Да, потому что он выполняется в рамках одной транзакции. В случае сбоя триггера вставка / обновление также не удастся. Просто выполните тест, выполнив запрос, который не будет выполнен (ВЫБЕРИТЕ таблицу, которая не существует), и вы увидите, как все работает и как будет работать ваше приложение.
CREATE OR REPLACE FUNCTION foo() RETURNS TRIGGER
AS
$$
BEGIN
EXECUTE 'SELECT fail';
END;
$$
LANGUAGE plpgsql;