docs: def add_edge(self, u, v, **kwargs):
          """
          Add an edge between two clique nodes.
  
          Parameters
          ----------
          u, v: nodes
              Nodes can be any list or set or tuple of nodes forming a clique.
  
          Examples
          --------
          >>> from pgmpy.models import JunctionTree
          >>> G = JunctionTree()
          >>> G.add_nodes_from([('a', 'b', 'c'), ('a', 'b'), ('a', 'c')])
          >>> G.add_edges_from([(('a', 'b', 'c'), ('a', 'b')),
          ...                   (('a', 'b', 'c'), ('a', 'c'))])
          """
          if u in self.nodes() and v in self.nodes() and nx.has_path(self, u, v):
              raise ValueError('Addition of edge between {u} and {v} forms a cycle breaking the '
                               'properties of Junction Tree'.format(u=str(u), v=str(v)))
  
          super(JunctionTree, self).add_edge(u, v, **kwargs)