**Apache Airflow version**: 2.1.0

**What happened**:

Using a Label infront of a TaskGroup breaks task dependencies, as tasks before the TaskGroup will now point to the last task in the TaskGroup.

**What you expected to happen**:

Task dependencies with or without Labels should be the same (and preferably the Label should be visible outside of the TaskGroup).
Behavior without a Label is as follows:

```python
with TaskGroup("tg1", tooltip="Tasks related to task group") as tg1:
        DummyOperator(task_id="b") >> DummyOperator(task_id="c")

DummyOperator(task_id="a") >> tg1
```
![without Taskgroup](https://user-images.githubusercontent.com/35238779/128502690-58b31577-91d7-4b5c-b348-4779c9286958.png)

**How to reproduce it**:

```python
with TaskGroup("tg1", tooltip="Tasks related to task group") as tg1:
        DummyOperator(task_id="b") >> DummyOperator(task_id="c")

    DummyOperator(task_id="a") >> Label("testlabel") >> tg1
```
![with TaskGroup](https://user-images.githubusercontent.com/35238779/128502758-5252b7e7-7c30-424a-ac3a-3f9a99b0a805.png)


return self._upstream
    def set_upstream(
        self, task_or_task_list: DependencyMixin | Sequence[DependencyMixin], chain: bool = True
    ):
        """
        Sets the given task/list onto the upstream attribute, and then checks if
        we have both sides so we can resolve the relationship.
        Providing this also provides << via DependencyMixin.
        """
        from airflow.models.baseoperator import BaseOperator
        
        if isinstance(task_or_task_list, DependencyMixin):
            task_or_task_list = [task_or_task_list]
        
        operators: list[BaseOperator] = []
        for task in task_or_task_list:
            for root in task.roots:
                if not isinstance(root, BaseOperator):
                    raise TypeError(f"Cannot use edge labels with {type(root).__name__}, only operators")
                operators.append(root)
        
        
        for operator in operators:
            for downstream in self._downstream:
                self.add_edge_info(operator.dag, operator.task_id, downstream.task_id)
                if chain:
                    operator.set_downstream(downstream)
        
        self._upstream.extend(operators)
    def set_downstream(