It's not the best way to avoid conflicts. I'm even not sure that pessimistic locking has a real world usage anywhere.
You can run a query on a buffered or nonbuffered table using select-sql w/o getting into locking issues.
As long as it's buffered, data session is irrelevant. It's next level boundary. You can actually test multiuser scenario on a single machine and on a single VFP session using different datasessions (or with no separate sessions using buffering). The danger is when it's not buffered (append blank doesn't lock the record and 2 different persons might be competing to edit the same record when they think they're attempting to edit theirs).
Your impression is not wrong. If 2 are modifying the same record then it's a conflict. The conflicts' seriousness and solving depend on what type of application it's. It might be as simple as last write wins strategy with no checking on conflicting values or exclusive check, prompt,confirm etc.
In help check for the topic under Multiuser scenarios. There is one nice page I remember that summarizes that conflict and handling step by step.
If you want to lock series of records then it's not the buffering but transactions that you need to check. Buffering and transactions might be together or exclusively. Unfortunately, there are tons of scenarios for each combination so there is no single "best strategy". Even in case of transactions it's recommended you do it in "atomic codes" where locking time of records are kept to a minimum.
I just can't fit "pessimistic" anywhere.