As far as I’m aware you can’t purge Matrix’s trash via a database query, and I strongly suspect you’d be very likely to make a mess of your Matrix system if you tried.
In my experience, “unable to commit, transaction has already been aborted” is a symptom rather than a cause. It means that Matrix tried to perform a number of database queries in a single transaction, but one or more of them threw an error and caused the transaction as a whole to abort. The “unable to commit” message is displayed when Matrix then tries to end the transaction by committing its changes.
The key question is what database query failed and caused the transaction to abort? If you were running PostgreSQL I’d suggest checking the PostgreSQL database logs, but since you’re using Oracle I’d probably check the Matrix error logs first. If there’s nothing relevant in there, then you might need to ask your friendly Oracle DBAs if they can see anything.
Failing that, since your forum account indicates you’re a Squiz client, you could lodge a support ticket and ask Squiz Support to investigate.