def METHOD_NAME(self, node: ast.arguments) -> ast.arguments:
    self.generic_visit(node)
    keep = dict(
        kwonlyargs=node.kwonlyargs,
        vararg=node.vararg,
        kwarg=node.kwarg,
        kw_defaults=node.kw_defaults,
        defaults=node.defaults,
    )
    if node.posonlyargs and node.posonlyargs[0].arg != 'self':
        return ast.arguments(
            posonlyargs=[
                ast.arg('self', annotation=None, type_comment=None),
                *node.posonlyargs[1:],
            ],
            args=node.args,
            **keep,
        )
    if not node.posonlyargs and node.args and node.args[0].arg != 'self':
        return ast.arguments(
            args=[
                ast.arg('self', annotation=None, type_comment=None),
                *node.args[1:],
            ],
            posonlyargs=node.posonlyargs,
            **keep,
        )
    return node