def add_edge(self, u_vertex, v_vertex):
        """Adds the edge ``u_vertex -> v_vertex`` to the graph if the edge is not already present.

        :param u_vertex: Vertex
        :param v_vertex: Vertex
        :return: ``True`` if a new edge was added. ``False`` otherwise.
        """
        self._vertices.add(u_vertex)
        self._vertices.add(v_vertex)
        if not self.is_edge(u_vertex, v_vertex):
            self.indegrees[v_vertex] += 1
            self.adj_dict[u_vertex].append(v_vertex)
            return True

        return False