A system for managing abort events of Hardware Transactional Memory transactions to an in-memory database, comprising: a processor adapted to control a plurality of abort evens of a plurality of database transactions held concurrently to a shared in-memory database, wherein each of the plurality of database transactions is split (Step 102) to a plurality of HTM transactions executed atomically to access one of a plurality of rows of a database, by: analyzing (Step 106) a metadata record associated with each of a plurality of potential abort events, the metadata record comprising a row identification value and a row version value of a certain one of the plurality of rows which is concurrently accessed by at least one aborting HTM transaction and at least one other HTM transaction, comparing the row ID value and the row version value to a local ID value and a local version value of the at least one aborting HTM transaction, and determining (Step 108) a contention condition between the at least one aborting HTM transaction and the at least one other HTM transaction; wherein the local ID value uniquely identifies each of a plurality of threads (208A, 208B, 208C, 208D, 208N) initiating concurrently the plurality of database transactions comprising the HTM transaction and the local version value is a self-incrementing value which is incremented by the each thread (208A, 208B, 208C, 208D, 208N) following each successful commit of one of the plurality of database transactions, and the row ID value is the local ID value of a respective one of the plurality of threads (208A, 208B, 208C, 208D, 208N) that made a most recent successful commit to the certain row and the row version value is the local version value of the respective thread (208A, 208B, 208C, 208D, 208N) at time of the most recent successful commit; wherein in case the processor determines a possible contention condition, the aborting HTM transaction is re-initiated until exceeding a retry threshold defining a predefined number of retries; wherein the determining the contention condition between the at least one aborting HTM transaction and the at least one other HTM transaction is executed within the aborting HTM transaction. analyzing (Step 106) a metadata record associated with each of a plurality of potential abort events, the metadata record comprising a row identification value and a row version value of a certain one of the plurality of rows which is concurrently accessed by at least one aborting HTM transaction and at least one other HTM transaction, comparing the row ID value and the row version value to a local ID value and a local version value of the at least one aborting HTM transaction, and determining (Step 108) a contention condition between the at least one aborting HTM transaction and the at least one other HTM transaction; wherein the local ID value uniquely identifies each of a plurality of threads (208A, 208B, 208C, 208D, 208N) initiating concurrently the plurality of database transactions comprising the HTM transaction and the local version value is a self-incrementing value which is incremented by the each thread (208A, 208B, 208C, 208D, 208N) following each successful commit of one of the plurality of database transactions, and the row ID value is the local ID value of a respective one of the plurality of threads (208A, 208B, 208C, 208D, 208N) that made a most recent successful commit to the certain row and the row version value is the local version value of the respective thread (208A, 208B, 208C, 208D, 208N) at time of the most recent successful commit; wherein in case the processor determines a possible contention condition, the aborting HTM transaction is re-initiated until exceeding a retry threshold defining a predefined number of retries; wherein the determining the contention condition between the at least one aborting HTM transaction and the at least one other HTM transaction is executed within the aborting HTM transaction.