Du hade rätt när du tänkte på regelsystemet. Här är en länk till ett exempel som matchar ditt problem. Det är ännu enklare än triggers:
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;
Vissa svar missar en punkt:även uppdateringen av den skyddade raden måste begränsas. Annars kan man först uppdatera den skyddade raden så att den inte längre uppfyller det förbjudna raderingskriteriet, och sedan kan man ta bort den uppdaterade raden eftersom den inte längre är skyddad.