@madhu
You can add the custom graphics (markers, text, lines, etc.) using JSL by using the command << add graphics script. The scripting index has many examples on the possibilities.
I updated your original script with Jarmo's suggestion. I think you should be able to modify this to your specific script.

// assign the bubble plot to a variable
bp = Bubble Plot(
X( :LON ),
Y( :LAT ),
Sizes( :WIND ),
Time( :Date ),
Coloring( :STAT ),
Title Position( -73.86, 8.76 ),
SendToReport(
Dispatch( {}, "LON", ScaleBox,
{Format( "Best", 9 ), Min( -81 ), Max( -39 ), Inc( 10 ),
Minor Ticks( 1 )}
),
Dispatch( {}, "LAT", ScaleBox,
{Scale( "Geodesic" ), Format( "Best", 9 ), Min( 2.25 ), Max( 33.75 ),
Inc( 5 ), Minor Ticks( 0 )}
),
Dispatch( {}, "Bubble Plot", FrameBox,
{Background Color( 73 ), Background Map(
Images( "Simple Earth" ),
Boundaries( "World" )
)}
)
)
);
// find the framebox in the bubble plot for the graphics script
fb = report( bp )[framebox(1)];
// add the custom script
fb << add graphics script(
Marker Size(5);
Marker([-40, -50, -60, -70], [5, 10, 15, 20]);
text(
{-40, 5}, "Station 1",
{-50, 10}, "Station 2",
{-60, 15}, "Station 3",
{-70, 20}, "Station 4",
)
);
You will now notice that this graphics script is saved to the graph when you right click >> Customize...

-Scott