First of all, if you don't want the third party to insert to certain tables, why not give them a DB login that only has write access to the tables you do want them to insert into? As an alternative to the 3rd party writing directly to the DB table, you may also want to investigate Business Services or XML CallObject for the third party to send you data. Using the later two interop methods will give you the ability to respond to the event in real-time and invoke any JDE business logic you might need or launch a UBE, etc. But, if none of these are options for you or the 3rd party and the 3rd party must write directly to the unsecured database then you might have to do something like you proposed, i.e. launch a UBE after a record is inserted to a table.
There are probably any number of ways to effectively launch a UBE based on an insert event to a table via ODBC (or JDBC or TSQL, etc.), some more elaborate than others. I guess it boils down to whether or not you need real-time event handling for the insert event or if some type of timed batch process will work. If you DONT need any type of real-time response you could simply create a DB trigger on the table your are "monitoring" that writes to some other table. Then a UBE could periodically check this other table for any new records and process them accordingly.
If you need real-time event handling I suggest searching this site. I believe I have seen several threads and several solutions out there that will effectively let you call a Business Function or invoke some other type of process in JDE from a DB trigger. I have not implemented any of them personally but I do know they are out there.
If the sole purpose of this UBE is some sort of audit trail or monitoring/notification, you may want to consider implementing a solution completely outside of the JDE toolset.
Personally if we need real-time event handling in JDE we use XML CallObject (or Business Services). Otherwise, we have used some type of periodic batch processing if the external (external to JDE) process writes directly to the database.