def METHOD_NAME(
    body: list, instance: str, method: str, args: list, kwargs: list, returns: list[str], index: None | int = None
) -> None:
    """Adds method call to be body of a container. By default, it appends. When
    index is specified, it inserts.
    :param body:
    :param instance:
    :param method:
    :param args:
    :param kwargs:
    :param index:
    :param returns:
    :return:
    """
    call = Call(func=get_name_attr(instance, method), args=args, keywords=kwargs)
    cont: Expr | Assign | None = None
    if not returns:
        cont = Expr(value=call)
    elif len(returns) == 1:
        # TODO AnnAssign??
        cont = Assign(targets=[Name(id=returns[0], ctx=Store())], value=call)
    else:
        cont = Assign(targets=[Tuple(elts=[Name(id=ret, ctx=Store()) for ret in returns], ctx=Store())], value=call)
    if index is None:
        body.append(cont)
    else:
        body.insert(index, cont)