I discovered that this was the problem with the CSV format. Even though I took it from a spreadsheet, when I saved it as .csv for some reason, it didn't have comma at the end of each record. This was resolved by using another csv file.
Also, I fixed the issue where all the records were getting modified instead of just the ones which are changed. I used a filter which sets a flag from No to Yes based on the below condition:
('TR.City' != 'DB.City') OR ('TR.Company' != 'DB.Company') OR ('TR.Country' != 'DB.Country') OR ('TR.Dept_Name_Long' != 'DB.Dept_Name_Long') OR ('TR.Email Address' != 'DB.Email Address') OR ('TR.First Name' != 'DB.First Name') OR ('TR.Job Title' != 'DB.Job Title') OR ('TR.Last Name' != 'DB.Last Name') OR ('TR.Mobile Number' != 'DB.Mobile Number') OR ('TR.Organization' != 'DB.Organization') OR ('TR.Phone Number' != 'DB.Phone Number') OR ('TR.Site_Name_Long' != 'DB.Site_Name_Long') OR ('TR.Username' != 'DB.Username')