def METHOD_NAME():
    args = parse_args()
    user_id = args.user_id
    conn_str = db_utils.generate_connect_string(
        DATABASE_HOST,
        DATABASE_PORT,
        "submitty",
        DATABASE_USER,
        DATABASE_PASS,
    )
    engine = create_engine(conn_str)
    connection = engine.connect()
    metadata = MetaData(bind=engine)
    users_table = Table('users', metadata, autoload=True)
    select = users_table.select().where(users_table.c.user_id == bindparam('user_id'))
    user = connection.execute(select, user_id=user_id).fetchone()
    defaults = {
        'user_givenname': None,
        'user_preferred_givenname': None,
        'user_familyname': None,
        'user_email': None
    }
    if user is not None:
        print(
            'User already exists! Hit enter on any question to use '
            'existing value for that field.'
        )
        defaults = user
    givenname = get_input('User givenname', defaults['user_givenname'])
    preferred = get_input(
        'User preferred name',
        defaults['user_preferred_givenname'],
        True
    )
    familyname = get_input('User familyname', defaults['user_familyname'])
    email = get_input('User email', defaults['user_email'], True)
    update = {
        'user_givenname': givenname,
        'user_preferred_givenname': preferred,
        'user_familyname': familyname,
        'user_email': email
    }
    extra = ""
    if user is not None and AUTHENTICATION_METHOD == 'DatabaseAuthentication':
        extra = ' (Leave blank to use previous password)'
    while AUTHENTICATION_METHOD == 'DatabaseAuthentication':
        password = input('User password{}: '.format(extra))
        if password != '':
            update['user_password'] = get_php_db_password(password)
            break
        elif user is not None and password == '':
            break
    if user is not None:
        query = users_table.update(values=update).where(
            users_table.c.user_id == bindparam('b_user_id')
        )
        connection.execute(query, b_user_id=user_id)
    else:
        update['user_id'] = user_id
        query = users_table.insert()
        connection.execute(query, **update)