code: def _callback(self, mres):
          
          try:
              rows = self._process_payload(self.raw.rows)
              if rows:
                  self.on_rows(rows)
              if self.raw.done:
                  self.on_done()
          finally:
              if self.raw.done:
                  self._clear()
docs: This is invoked as the row callback.
          If 'rows' is true, then we are a row callback, otherwise
          the request has ended and it's time to collect the other data