I think this is the same old problem of your local sync database is not updated to reflect Manjaro’s repositories.
Need to do a pacman-mirrors -f and hopefully you have already done a pacman-mirrors -c or --geoip.
If there are updates pending (pamac checkupdates), you need to update the sync database on your system before actually doing the update. Searching the forum, you’ll see the two commands chained together pacman-mirrors && pacman with the appropriate options specified.
I had no problems updating from 2.4.4-1 to 2.4.6-1 on 03/08. Where did that 2.4.7 come from that is in the OP output.
expat branch compare at this moment in time shows Stable and Testing at 2.4.6-1 and Unstable at 2.4.7-1.
The command @Olli suggested will remove all cached files that reside in /var/cache/pacman/pkg/.
There is a systemd timer, pamac-cleancache, that runs periodically to keep a specified number of packages (systemctl list-timers), but this might be a special case where it would be easier just remove them. Once packages are installed, in a single-user environment, the only purpose they serve is to downgrade to a previous version in the case something breaks in a newer version.
You could in addition issue the command below to check the directory to see if there are any expat 2.4.7 and remove them manually. It would be interesting to know if these files exist.