This approach works at the moment because:

- everything is inside a transaction
- a given session is not concurrent and execute operation sequentially
- the method is called a second time **right after** the first time

So the same RowKey cannot be created for two different associations at the same time from within the same transaction. Scary but it works.