def METHOD_NAME(input_file, filename):
    with open(filename, 'rt', encoding='utf-8') as f:
        region_cluster = json.load(f)
    cluster = {value['value']: value for value in region_cluster['values']}
    regions_mapping = _parse_csv_input(input_file)
    is_changed = False
    for region, subregions in regions_mapping.items():
        if region not in cluster:
            cluster_value = {
                'value': region,
                'uuid': uuid4().__str__(),
            }
            if subregions is not None:
                cluster_value['meta'] = {
                    'subregions': sorted(subregions)
                }
            cluster[region] = cluster_value
            is_changed = True
        else:
            if subregions != cluster[region].get('meta', {}).get('subregions'):
                if subregions is not None:
                    cluster[region]['meta'] = {
                        'subregions': sorted(subregions)
                    }
                is_changed = True
    if is_changed:
        region_cluster['values'] = _generate_cluster_values(cluster)
        with open(filename, 'wt', encoding='utf-8') as f:
            f.write(json.dumps(region_cluster, indent=2))