code: public void delete(List<RecordSelector> whereClauses) throws Exception {
  		OperationAccess operationAccess = tableSchema.getDeleteAccess();
  		if( false == operationAccess.isAllowed() ) {
  			throw new Exception("Attempting to delete record(s) from a table while the privilege is not allowed: "+tableSchema.getLogicalName()+" ("+tableSchema.getPhysicalName()+")");
  		}
  		
  		// Figure out all WHERE clauses
  		List<RecordSelector> effectiveWhereClauses = computeEffectiveWhereClauses(whereClauses, operationAccess);
  
  		// Create SQL command
  		String sqlQuery = null;
  		PreparedStatement pstmt = null;
  		{
  			StringWriter sw = new StringWriter();
  			PrintWriter pw = new PrintWriter(sw);
  			pw.print("DELETE FROM ");
  			pw.print(tableSchema.getPhysicalName());
  			{
  				boolean first = true;
  				for( RecordSelector exp : effectiveWhereClauses ) {
  					if( first ) {
  						pw.print(" WHERE ");
  						first = false;
  					} else {
  						pw.print(" AND ");
  					}
  					pw.print( exp.getQueryString(tableSchema, SqlElement.Phase.WHERE) );
  				}
  			}
  			pw.flush();
  			
  			sqlQuery = sw.toString();
  			pstmt = connection.prepareStatement(sqlQuery);
  			
  			// Populate prepared statement
  			int index = 1;
  			for( RecordSelector exp : effectiveWhereClauses ) {
  				for(TypedValue value : exp.getQueryValues(tableSchema, variables)) {
  					ColumnDataUtils.writeToPreparedStatement(pstmt, index, value);
  					++index;					
  				}
  			}
  		}
  		
  		// Execute insert
  		pstmt.execute();
  	}
docs: Deletes a set of records (rows) in the table according to the given
  selectors. This method respect the table schema and the user's capabilities while
  performing the operation.
  @param whereClauses List of WhereExpression instances to select proper records
  @throws Exception