What is the difference between how browsers implement POST and PUT requests?

when learning REST, I learned that POST requests are non-idempotent, while PUT requests are idempotent, so POST is suitable for adding and PUT is suitable for modification.
there is a question here, is the idempotency here just a difference in definition? Is there any difference in browser behavior when sending POST and PUT requests, especially in case of a failed retry? If it"s just a difference in definition, then idempotent or not is entirely implemented by programmers on the server side (that is, it is possible to implement POST as idempotent and PUT as non-idempotent). Is that correct?

Mar.07,2021
Menu