Den enkleste måde synes at være at bruge transaktionsisoleringsniveauet 'serialiserbar', som forhindrer fantomlæsninger (andre personer indsætter data, som ville tilfredsstille et tidligere SELECT under din transaktion).
if (!conn.getMetaData().supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE)) {
// OK, you're hosed. Hope for your sake your drivers supports this isolation level
}
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
Der er også teknikker som Oracles "MERGE"-erklæring - en enkelt erklæring, der 'indsætter eller opdaterer', afhængigt af om dataene er der. Jeg ved ikke om Postgres har en tilsvarende, men der er teknikker til at 'falske det' -- se f.eks. Sådan skriver man INSERT HVIS IKKE FINDER forespørgsler i standard SQL .