Hybrid STM/HTM for nested transactions in Java