docs: def _function_add_call_edge(self, addr, src_node, function_addr, syscall=False, stmt_idx=None, ins_addr=None):
          """
          Add a call edge to the function transition map.
  
          :param int addr: Address that is being called (callee).
          :param CFGNode src_node: The source CFG node (caller).
          :param int ret_addr: Address that returns to (in case the function returns).
          :param int function_addr: Function address..
          :param bool syscall: If this is a call to a syscall or not.
          :param int or str stmt_idx: Statement ID of this call.
          :param int or None ins_addr: Instruction address of this call.
          :return: True if the edge is added. False if any exception occurred.
          :rtype: bool
          """
          try:
              if src_node is None:
                  self.kb.functions._add_node(function_addr, addr, syscall=syscall)
              else:
                  src_snippet = self._to_snippet(cfg_node=src_node)
  
                  return_to_outside = False
  
                  ret_snippet = None
  
                  self.kb.functions._add_call_to(function_addr, src_snippet, addr, ret_snippet, syscall=syscall,
                                                 stmt_idx=stmt_idx, ins_addr=ins_addr,
                                                 return_to_outside=return_to_outside,
                                                 )
              return True
          except (SimMemoryError, SimEngineError):
              return False