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.