The problem with browser back button is with any web application. I posted similar problem last week in this forum. I followed the 'Working with DataProvider' verbatim and the pages created that way had this problem.
If you have built something similar to what is given in that tutorial... the problem is because the server will never know that browser back button has been pressed and the previously displayed record is being displayed on the screen. When 'Save' is pressed- the values from the page are applied to the data provider's current row- which is different from what is there on the screen and is commited to the database. Thus a wrong row gets updated in the database.
To overcome this- I would suggest to update the database using some reference value from the page... like the primary key. e.g., if you have a table - ITEMS with ITEM_ID, NAME, PRICE... with ITEM_ID being the primary key- then let the Item Id be on the jsp page as display only / hidden field and use the value of Item Id field while saving the record to database. I mean the update statement should be like... "Update ITEMS set .... where ITEM_ID = (Item Id value just restored from the page)".
Also, you may want to block the page getting cached on the browser. Here is the thread says how to do that-
http://forum.sun.com/jive/thread.jspa?threadID=64951&messageID=243055
Hope this helps...