code: async def _executemany(self, query, dps, cursor):
          
          result_map = None
          if isinstance(query, str):
              await cursor.executemany(query, dps)
          elif isinstance(query, DDLElement):
              raise exc.ArgumentError(
                      "Don't mix sqlalchemy DDL clause "
                      "and execution with parameters"
                  )
          elif isinstance(query, ClauseElement):
              compiled = query.compile(dialect=self._dialect)
              params = []
              is_update = isinstance(query, UpdateBase)
              for dp in dps:
                  params.append(
                      self._base_params(
                          query,
                          dp,
                          compiled,
                          is_update,
                      )
                  )
              await cursor.executemany(str(compiled), params)
              result_map = compiled._result_columns
          else:
              raise exc.ArgumentError(
                  "sql statement should be str or "
                  "SQLAlchemy data "
                  "selection/modification clause"
              )
          ret = await create_result_proxy(
              self,
              cursor,
              self._dialect,
              result_map
          )
          self._weak_results.add(ret)
          return ret
docs: executemany