docs: def _WriteResponses(self, responses, cursor):
      """Builds the writes to store the given responses in the db."""
  
      query = ("INSERT IGNORE INTO flow_responses "
               "(client_id, flow_id, request_id, response_id, "
               "response, status, iterator, timestamp) VALUES ")
  
      templates = []
      args = []
      for r in responses:
        templates.append("(%s, %s, %s, %s, %s, %s, %s, NOW(6))")
        client_id_int = db_utils.ClientIDToInt(r.client_id)
        flow_id_int = db_utils.FlowIDToInt(r.flow_id)
  
        args.append(client_id_int)
        args.append(flow_id_int)
        args.append(r.request_id)
        args.append(r.response_id)
        if isinstance(r, rdf_flow_objects.FlowResponse):
          args.append(r.SerializeToString())
          args.append("")
          args.append("")
        elif isinstance(r, rdf_flow_objects.FlowStatus):
          args.append("")
          args.append(r.SerializeToString())
          args.append("")
        elif isinstance(r, rdf_flow_objects.FlowIterator):
          args.append("")
          args.append("")
          args.append(r.SerializeToString())
        else:
          # This can't really happen due to db api type checking.
          raise ValueError("Got unexpected response type: %s %s" % (type(r), r))
  
      query += ",".join(templates)
      try:
        cursor.execute(query, args)
      except MySQLdb.IntegrityError:
        # If we have multiple responses and one of them fails to insert, we try
        # them one by one so we don't lose any valid replies.
        if len(responses) > 1:
          for r in responses:
            self._WriteResponses([r], cursor)
        else:
          logging.warn("Response for unknown request: %s", responses[0])