Hi Anil,
You are using workflow to update multiple records. Could you please check whether that workflow is async? If yes, then it might updating more than one records at a time.
If you are using CRM 2013 then make that workflow to run synchronously and try.
Else, you can implement locking in your plugin. Check below link for locking,
http://www.crmsoftwareblog.com/2012/01/implementing-robust-microsoft-dynamics-crm-2011-auto-numbering-using-transactions/
HTH!
If this post answers your question, please click "Mark As Answer" on the post and "Mark as Helpful"