There are a few things you can do, depending on which behavior you're looking for.
Are you actually editing and committing inside the subrepo? If so, you should create a separate vendor-branch-like repo where you merge your changes with the upstream ("their") changes, and have your subrepo point to that. Something like this perhaps:
repos
main
subrepo
.hgsub # contains: "subrepo=../theirproject"
theirproject # clone of remote, upstream repo
The idea being that the subrepo entry not point directly to the pull-only upstream repo, but to one of your own where you merge your changes with "theirs"
Another option is to stop making changes in the subrepo. If there are no changes, and no commits, then push will pass that repo right by. If you switch to that work mode you can set the commitsubrepos = false
in the [ui]
section in a hgrc file to avoid accidentally committing in that repo.
The bottom line is that if you're changing things in there then you need to commit them (for safety!) and if you're commit them then they'll be pushed if the parent is pushed, so just control to where they're pushed and you're good to go.