few Things I can suggest after looking into your code ...
1. pstatement.setString(2, lname); you have just set lname only even in your query
you should pass fname also.
2. try to use normal sql update ,i doubt you can pass dynamic value in where clause in PL/SQL (I guess). try to update data without using where clause ,if you get success
it means you can't pass dynamic value for where clause.
hope my finding help you :)