code: async def fetchmany(self, size=None):
          
          try:
              if size is None:
                  rows = await self._cursor.fetchmany()
              else:
                  rows = await self._cursor.fetchmany(size)
          except AttributeError:
              self._non_result()
          else:
              ret = self._process_rows(rows)
              if len(ret) == 0:
                  await self.close()
              return ret
docs: Fetch many rows, just like DB-API
          cursor.fetchmany(size=cursor.arraysize).
  
          If rows are present, the cursor remains open after this is called.
          Else the cursor is automatically closed and an empty list is returned.