code: def insert(self, new, pos=None, neighbor=None):
      if not isinstance(new, list):
          new = [new]
      for n in new:
          # remove from existing parent first
          n.setParent(None)
      if neighbor is None:
          if pos == "before":
              index = 0
          else:
              index = self.count()
      else:
          index = self.indexOf(neighbor)
          if index == -1:
              index = 0
          if pos == "after":
              index += 1
  
      for n in new:
          # print "insert", n, " -> ", self, index
          self._insertItem(n, index)
          # print "change container", n, " -> ", self
          n.containerChanged(self)
          index += 1
          n.sigStretchChanged.connect(self.childStretchChanged)
      # print "child added", self
      self.updateStretch()
  
imports: import weakref
  from ..Qt import QtCore, QtWidgets
  from .Dock import Dock
label_desc: Use image node_id 5 for calling the Container obj's underlying member method code with example usage: obj.insert(new, pos, neighbor) without return types