Você estava certo ao pensar no sistema de regras. Aqui está um link para um exemplo que corresponde ao seu problema. É ainda mais simples que os gatilhos:
create rule protect_first_entry_update as
on update to your_table
where old.id = your_id
do instead nothing;
create rule protect_first_entry_delete as
on delete to your_table
where old.id = your_id
do instead nothing;
Algumas respostas perdem um ponto:também a atualização da linha protegida deve ser restrita. Caso contrário, pode-se primeiro atualizar a linha protegida de forma que ela não atenda mais ao critério de exclusão proibido e, em seguida, pode-se excluir a linha atualizada, pois ela não está mais protegida.