def METHOD_NAME(func):
    """
    A decorator for storing freq merge results (as CSV files). Please note that this is not just
    caching but rather an essential part of the query processing. Without this decorator, KonText
    cannot return the result - i.e. the result data must be stored to disk to be readable by a client.
    """
    @wraps(func)
    async def wrapper(args: FreqCalcArgs) -> FreqCalcResult:
        data, cache_path = await find_cached_result(args)
        if data is None:
            data: FreqCalcResult = await func(args)
            async with aiofiles.open(cache_path, 'w') as fw:
                common_md = CommonMetadata(num_blocks=len(data.freqs), conc_size=data.conc_size)
                await fw.write(json.dumps(common_md.to_dict()) + '\n')
                for freq in data.freqs:
                    block_md = BlockMetadata(
                        head=[_Head(**x) for x in freq.Head],
                        skipped_empty=freq.SkippedEmpty,
                        no_rel_sorting=freq.NoRelSorting,
                        size=len(freq.Items))
                    await fw.write(json.dumps(block_md.to_dict()) + '\n')
                    for item in freq.Items:
                        await fw.write(json.dumps(item.to_dict()) + '\n')
        return data
    return wrapper