def METHOD_NAME(self,
                csv_record_dict: Dict[str, Any],
                file_mapping: Dict[Any, DictWriter],
                key: Any,
                dir_path: str,
                file_suffix: str
                ) -> DictWriter:
    """
    Finds a writer based on csv record, key.
    If writer does not exist, it's creates a csv writer and update the mapping.
    :param csv_record_dict:
    :param file_mapping:
    :param key:
    :param dir_path:
    :param file_suffix:
    :return:
    """
    writer = file_mapping.get(key)
    if writer:
        return writer
    LOGGER.info(f'Creating file for {key}')
    file_out = open(f'{dir_path}/{file_suffix}.csv', 'w', encoding='utf8')
    writer = csv.DictWriter(file_out, fieldnames=csv_record_dict.keys(),
                            quoting=csv.QUOTE_NONNUMERIC)
    def file_out_close() -> None:
        LOGGER.info(f'Closing file IO {file_out}')
        file_out.close()
    self._closer.register(file_out_close)
    writer.writeheader()
    file_mapping[key] = writer
    return writer