code: def add_bond(self, atom1, atom2, bond):
          
          if atom1 == atom2:
              raise KeyError('atom loops impossible')
          if atom1 not in self._node or atom2 not in self._node:
              raise KeyError('atoms not found')
          if atom1 in self._adj[atom2]:
              raise KeyError('atoms already bonded')
  
          attr_dict = self.edge_attr_dict_factory()
          if isinstance(bond, int):
              attr_dict.order = bond
          else:
              attr_dict.update(bond)
  
          self._adj[atom1][atom2] = self._adj[atom2][atom1] = attr_dict
          self.flush_cache()
docs: implementation of bond addition