This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Rakkesh, The reasons for that is because you are doing multiple things in the same transaction. The row needs to be locked to make sure the data you are retieving is consistent with the data you are adding. Otherwise someone could change things in the middle and leave your data in an inconsistent state.
If you were just inserting the BLOB, the locking situtation would be different.