Strong transaction isolation can be broken by deletes. Transactions rely on entry versions to guarantee isolation. However, missing entries do not have versions, and thus optimistic locks used for non-existent keys are unreliable in transactions. This can result in concurrent transactions modifying a map without being detected. Transactional primitives need to track tombstones while transactions are open to ensure optimistic locking can be performed on empty keys.