Yes there is a way.
You can have 2 UV maps.
go into the object properties of the terrain and add a second uv map -
now select the second uv map and unwrap it in the uv editor in a way that would make it easy to add the puddle but would probably break the textures.
(you don't need to unwrap the whole model, just select the mesh you want to put a puddle on.)
Now create / get the texture you want to overlay on top. and replace the original picture with a node tree matching the following -
this works like adding a layer in photoshop or gimp or any other image editor for that matter.
Notice how in the puddle texture i set the third option to clip instead of repeat so you don't have a bunch of puddles.
example usage of this node setup -
if i set the top texture to this
and the bottom texture to
i will get the following image with the smiley face layered on top -
So set each image to use a different uv map and you're in business