I always follow the rule: write each piece of code just once in an application (either form code or fdatabase code).
So, in this situation i'd write a piece of code in the database so as whichever source (from a form, from a utility - such as toad excel import data e.t.c.) tried to insert or update the record to an existent one,
then this could not be done.
You could do this by using a compould trigger, in a manner to avoid the problem of mutating table.