code: @Override
      public void acquire() throws Exception {
          
          Preconditions.checkArgument(ttl == null || TimeUnit.SECONDS.convert(timeout, timeoutUnits) < ttl, "Timeout " + timeout + " must be less than TTL " + ttl);
          
          RetryPolicy retry = backoffPolicy.duplicate();
          retryCount = 0;
          while (true) {
              try {
                  long curTimeMicros = getCurrentTimeMicros();
                  
                  MutationBatch m = keyspace.prepareMutationBatch().setConsistencyLevel(consistencyLevel);
                  fillLockMutation(m, curTimeMicros, ttl);
                  m.execute();
                  
                  verifyLock(curTimeMicros);
                  acquireTime = System.nanoTime();
                  return;
              }
              catch (BusyLockException e) {
                  release();
                  if(!retry.allowRetry())
                      throw e;
                  retryCount++;
              }
          }
      }
docs: Try to take the lock.  The caller must call .release() to properly clean up
  the lock columns from cassandra
  
  @throws Exception