When an entry is read (1) inside a transaction and then updated (2), there is a chance that concurrent transaction will modify that entry in between (1) and (2). In this case an error is thrown from the first transaction when action (2) is performed and transaction is marked as "rollback only". User need to re-try the whole transaction in this case.
When native APi is used, then CacheException is thrown with special message Cannot serialize transaction due to write conflict (transaction is marked for rollback). This will be changed in future (AI 2.8|) - special exception type will be thrown.
When JDBC or ODBC are used, then special SQLSTATE code 40001 (aka "Serialization failure") is propagated to user.