Correct. A minimal solution to this problem is to switch from Enum.map (useful when the transformation is independent of previous elements) to Enum.reduce which passes state to each iteration:
|> Enum.reduce(%{}, fn row, artists_map ->
[artist, _album, _type, _release_date, _catalog, _label, _main_release] = row
check_or_insert_artist(artist, artists_map)
end)


















