My understanding of Mercurial is that it allows for divergence in a single branch as well as creation of explicit branches. Say Amy and Bob are working on a project. They both pull changeset 1 and work on it, then they both commit their changes and push the changes back to bitbucket. The next time they pull, there will be two incompatible heads (changesets 2 and 3), so the default branch will need to be resolved if they want to keep the changes.
On the other hand, if Amy sets up a new branch (hg branch bestbranch), then there will still be two heads, but both Amy and Bob can work on independent changesets, resolving them at some future date.