code: def release(self, connection):
          
          self._checkpid()
          if connection.pid != self.pid:
              return
  
          # Remove the current connection from _in_use_connection and add it back to the available pool
          # There is cases where the connection is to be removed but it will not exist and there
          # must be a safe way to remove
          i_c = self._in_use_connections.get(connection.node["name"], set())
          if connection in i_c:
              i_c.remove(connection)
          else:
              pass
          # discard connection with unread response
          if connection.awaiting_response:
              connection.disconnect()
              # reduce node connection count in case of too many connection error raised
              if self.max_connections_per_node and self._created_connections_per_node.get(connection.node['name']):
                  self._created_connections_per_node[connection.node['name']] -= 1
          else:
              self._available_connections.setdefault(connection.node["name"], []).append(connection)
docs: Releases the connection back to the pool