WriteBatchingTransactionService implements TransactionService { @Override public void putUnlessExists(long startTimestamp, long commitTimestamp) throws KeyAlreadyExistsException { AtlasFutures.getUnchecked(autobatcher.apply(TimestampPair.of(startTimestamp, commitTimestamp))); } private  WriteBatchingTransactionService(
            EncodingTransactionService delegate, DisruptorAutobatcher<TimestampPair, Void> autobatcher); static TransactionService create(EncodingTransactionService delegate); @CheckForNull @Override Long get(long startTimestamp); @Override Map<Long, Long> get(Iterable<Long> startTimestamps); @Override ListenableFuture<Long> getAsync(long startTimestamp); @Override ListenableFuture<Map<Long, Long>> getAsync(Iterable<Long> startTimestamps); @Override void putUnlessExists(long startTimestamp, long commitTimestamp); @Override void close();  }
@Test public void putsUnlessExistsToUnderlyingViaBatch() { writeBatchingTransactionService.putUnlessExists(7, 66); verify(mockTransactionService).putUnlessExistsMultiple(ImmutableMap.of(7L, 66L)); }