code: private void removeRow(long timestamp, ByteBuffer key, ColumnPath colPath) {
          // Prerequisites:
          assert key != null;
          assert colPath != null;
          m_logger.debug("Removing row {} from {}", Utils.toString(Utils.copyBytes(key)), toString(colPath));
          
          // The remove will be retried up to MAX_COMMIT_RETRIES times.
          boolean bSuccess = false;
          for (int attempts = 1; !bSuccess; attempts++) {
              try {
                  // Attempt to remove the requested row.
                  Date startDate = new Date();
                  m_client.remove(key, colPath, timestamp, ConsistencyLevel.ONE);
                  timing("remove", startDate);
                  if (attempts > 1) {
                      // Since we had a failure and warned about it, confirm which commit succeeded.
                      m_logger.info("remove() succeeded on attempt #{}", attempts);
                  }
                  bSuccess = true;
              } catch (InvalidRequestException ex) {
                  // No point in retrying this one.
                  String errMsg = "remove() failed for table: " + colPath.getColumn_family(); 
                  m_bFailed = true;
                  m_logger.error(errMsg, ex);
                  throw new RuntimeException(errMsg, ex);
              } catch (Exception ex) {
                  // For a timeout exception, Cassandra may be very busy, so we retry up
                  // to the configured limit.
                  if (attempts >= m_max_commit_attempts) {
                      m_bFailed = true;
                      String errMsg = "All retries exceeded; abandoning remove() for table: " +
                                      colPath.getColumn_family();
                      m_logger.error(errMsg, ex);
                      throw new RuntimeException(errMsg, ex);
                  }
                  
                  // Report retry as a warning.
                  m_logger.warn("remove() attempt #{} failed: {}", attempts, ex);
                  try {
                      // We wait more with each failure.
                      Thread.sleep(attempts * m_retry_wait_millis);
                  } catch (InterruptedException e1) {
                      // ignore
                  }
                  
                  // Reconnect since the connection may be bad. This throws an DBNotAvailableException
                  // if unsuccessful.
                  reconnect(ex);
              }
          }
      }
docs: Perform a row remove() update and retry if an error occurs.