1. A computer-readable medium having computer-executable instructions for causing a computer to perform a method comprising: creating, within a shared software transactional memory, a pessimistic duplication detection data structure for a parallel nested transaction; concurrently executing, within the shared software transactional memory, the parallel nested transactions, including: allowing side-effects of one of the parallel nested transactions to be rolled back if the one parallel nested transaction is discovered to be in conflict with some other concurrent transaction; making, within the shared software transactional memory, an entry into the data structure for each pessimistic read in the parallel nested transaction; and when committing, within the shared software transactional memory, the parallel nested transaction, passing, within the shared software transactional memory, new pessimistic read locks to an immediate parent, and making, within the shared software transactional memory, an entry into a separate pessimistic duplication detection data structure of the immediate parent with synchronization between sibling transactions.