code: def _graph_add_edge(self, src_block_id, dst_block_id, **kwargs):
          
  
          dst_node = self._graph_get_node(dst_block_id, terminator_for_nonexistent_node=True)
  
          if src_block_id is None:
              self.graph.add_node(dst_node)
  
          else:
              src_node = self._graph_get_node(src_block_id, terminator_for_nonexistent_node=True)
              self.graph.add_edge(src_node, dst_node, **kwargs)
docs: Add an edge onto the graph.
  
          :param BlockID src_block_id: The block ID for source node.
          :param BlockID dst_block_id: The block Id for destination node.
          :param str jumpkind:         The jumpkind of the edge.
          :param exit_stmt_idx:        ID of the statement in the source IRSB where this edge is created from. 'default'
                                       refers to the default exit.
          :return: None