Tenías razón al pensar en el sistema de reglas. Aquí hay un enlace a un ejemplo que coincide con su problema. Es incluso más simple que los disparadores:
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;
Algunas respuestas pierden un punto:también se debe restringir la actualización de la fila protegida. De lo contrario, primero se puede actualizar la fila protegida para que ya no cumpla con el criterio de eliminación prohibida, y luego se puede eliminar la fila actualizada porque ya no está protegida.