To use a WMS layer as an overlay layer on top of another layer, you need a transparent image. You can configure the WMS tileset model to request transparent tile images from the server. You do so by setting the transparent option:

    [{layer: "rivers"}], {transparent: true})
    .then(function(model) {
      //do something with the model

You can use a similar approach for a WMSImageModel.