code: def create(cls, pid, idle_ttl=DEFAULT_IDLE_TTL, max_size=DEFAULT_MAX_SIZE,
                 time_method=None):
          
          if pid in cls._pools:
              raise KeyError('Pool %s already exists' % pid)
          with cls._lock:
              LOGGER.debug("Creating Pool: %s (%i/%i)", pid, idle_ttl, max_size)
              cls._pools[pid] = Pool(pid, idle_ttl, max_size, time_method)
docs: Create a new pool, with the ability to pass in values to override
          the default idle TTL and the default maximum size.
  
          A pool's idle TTL defines the amount of time that a pool can be open
          without any sessions before it is removed.
  
          A pool's max size defines the maximum number of connections that can
          be added to the pool to prevent unbounded open connections.
  
          :param str pid: The pool ID
          :param int idle_ttl: Time in seconds for the idle TTL
          :param int max_size: The maximum pool size
          :param callable time_method: Override the use of :py:meth:`time.time`
              method for time values.
          :raises: KeyError