You could use a PictureMarkerSymbol and pass the path to your image as the URL for the symbol, for example:
var pictureMarkerSymbol = new PictureMarkerSymbol('/images/my-image.jpg', 25,25);
(The last two parameters are width and height in pixels, don't pass in anything to use the default pixels of the image).
You'd then decide where you want to place the symbol, probably you'd make a point geometry at that location, and then create a new graphic with the symbol and geometry and add it to your map or a layer on your map.
This method requires you to host the image if you want other people to be able to view your app. Alternatively, you could upload the image to some hosting site and pass the URL to the image instead of the path to the file.
This will be a "dumb" image. If you want to do something special with the image, you could try to play around with using an image service to host the image. I'm not knowledgeable about how this stuff works, but the 3.XX API has a widget to help with oblique image viewing: ObliqueViewer | API Reference | ArcGIS API for JavaScript 3.20. The key there is that the image must be published as a mosiac dataset and presumably there has to be some frame of reference for translating between image coordinates and map coordinates. This would all require software other than the JS API to set up.