Table-Valued Parameter in Microsoft SQL, what is that and where we can use it.

Recently i worked on a java microservice which was reading records from a csv file and inserting or updating into database through sql procedure. Database was Microsoft SQL.

Initially i wrote a simple java program, which was reading record one by one from CSV and was inserting that record into database. and it was working fine. However there was an issue , Issue was performance of insertion or updation of records in database. with one record at a time it was taking roughly 1 minute for 1000