docs: def WriteFlowRequests(self, requests, cursor=None):
      """Writes a list of flow requests to the database."""
      args = []
      templates = []
      flow_keys = []
      needs_processing = {}
  
      for r in requests:
        if r.needs_processing:
          needs_processing.setdefault((r.client_id, r.flow_id), []).append(r)
  
        flow_keys.append((r.client_id, r.flow_id))
        templates.append("(%s, %s, %s, %s, %s)")
        args.extend([
            db_utils.ClientIDToInt(r.client_id),
            db_utils.FlowIDToInt(r.flow_id), r.request_id, r.needs_processing,
            r.SerializeToString()
        ])
  
      if needs_processing:
        flow_processing_requests = []
        nr_conditions = []
        nr_args = []
        for client_id, flow_id in needs_processing:
          nr_conditions.append("(client_id=%s AND flow_id=%s)")
          nr_args.append(db_utils.ClientIDToInt(client_id))
          nr_args.append(db_utils.FlowIDToInt(flow_id))
  
        nr_query = ("SELECT client_id, flow_id, next_request_to_process "
                    "FROM flows WHERE ")
        nr_query += " OR ".join(nr_conditions)
  
        cursor.execute(nr_query, nr_args)
  
        db_result = cursor.fetchall()
        for client_id_int, flow_id_int, next_request_to_process in db_result:
          client_id = db_utils.IntToClientID(client_id_int)
          flow_id = db_utils.IntToFlowID(flow_id_int)
          candidate_requests = needs_processing.get((client_id, flow_id), [])
          for r in candidate_requests:
            if next_request_to_process == r.request_id:
              flow_processing_requests.append(
                  rdf_flows.FlowProcessingRequest(
                      client_id=client_id,
                      flow_id=flow_id,
                      delivery_time=r.start_time))
  
        if flow_processing_requests:
          self._WriteFlowProcessingRequests(flow_processing_requests, cursor)
  
      query = ("INSERT INTO flow_requests "
               "(client_id, flow_id, request_id, needs_processing, request) "
               "VALUES ")
      query += ", ".join(templates)
      try:
        cursor.execute(query, args)
      except MySQLdb.IntegrityError as e:
        raise db.AtLeastOneUnknownFlowError(flow_keys, cause=e)