code: async def fetchmany(self, size=None):
          
          self._check_executed()
          if size is None:
              size = self._arraysize
  
          rows = []
          for i in range(size):
              row = await self._read_next()
              if row is None:
                  break
              rows.append(row)
              self._rownumber += 1
          return rows
docs: Returns the next set of rows of a query result, returning a
          list of tuples. When no more rows are available, it returns an
          empty list.
  
          The number of rows returned can be specified using the size argument,
          which defaults to one
  
          :param size: ``int`` number of rows to return
          :returns: ``list`` of fetched rows