This class is used for keeping triples that are used by several transactions in parallel in sync. It allows
a transaction that creates a triple to register this triple and make the triple ID available to other transactions
to avoid duplicates. When a transaction commits, it then releases all its triple registrations.
The implementation is based on a very simple database table (REGISTRY). When a transaction creates a triple
with a new ID, it temporarily inserts a row mapping the (subject,predicate,object,context) -> triple ID. Other
transactions trying to create the same triple can then first lookup this ID. If they do so successfully, they will
also insert a row to the registry.