async def METHOD_NAME(
    app: web.Application,
    user_id: UserID,
    wallet_id: WalletID,
    name: str,
    description: str | None,
    thumbnail: str | None,
    status: WalletStatus,
) -> WalletGet:
    wallet: UserWalletDB = await db.get_wallet_for_user(
        app=app, user_id=user_id, wallet_id=wallet_id
    )
    if wallet.write is False:
        raise WalletAccessForbiddenError(
            reason=f"Wallet {wallet_id} does not have write permission"
        )
    wallet_db: WalletDB = await db.METHOD_NAME(
        app=app,
        wallet_id=wallet_id,
        name=name,
        description=description,
        thumbnail=thumbnail,
        status=status,
    )
    wallet_api: WalletGet = WalletGet(**wallet_db.dict())
    return wallet_api