Oracle - abort within a "before insert" trigger without throwing an exception
The only way for a trigger on a table to prevent an INSERT operation from completing is to throw an error.

It is, as you have stated, a huge hack, but you could


Rename the table
Create a view that has the same name as the original table
Create an instead of trigger on that view that only does an INSERT on the table if you want the row to be persisted.  Otherwise, the trigger would do nothing.


That should work so long as the application isn't doing a MERGE into the table.  Of course, it's a hack upon a hack so it's definitely not going to win any awards for clean code.