This should be done via plpgsql trigger, rather than in the PUT /trap UPDATE operation as it is at the moment, as non-admin API users won't have access to this query due to the permissions model.
The app would need to log these empty catches (which would be non-op INSERTs to the catch table, since we don't want to clog the DB with heaps of records where nothing is actually caught)
This should be done via plpgsql trigger, rather than in the PUT /trap UPDATE operation as it is at the moment, as non-admin API users won't have access to this query due to the permissions model.