Преди всичко ви е необходимпреди задейства, ако искате да промените стойност на реда, който се актуализира (или вмъква)
Второ, не е необходимо да "актуализирате" таблицата, просто присвоете новата стойност на НОВИЯ ред:
create or replace function pardota_masina_veikals()
RETURNS trigger
AS
$pardota_masina$
begin
IF NEW.sold=true THEN
NEW.id_shop = NULL;
END IF;
RETURN NEW;
END;
$pardota_masina$
LANGUAGE plpgsql;
CREATE TRIGGER pardota_masina_nevar_but_veikala
BEFORE INSERT OR UPDATE ON masinas
FOR EACH ROW EXECUTE PROCEDURE pardota_masina_veikals();