Forward Port - TransactionalMap.putIfAbsent unlock

Forward port of #3092
Fixes #3149