Is there a way to use Sverchok's ScriptNode without defining in_sockets?
No, and this is by design. 

"ScriptNode" is the oldest of the available script nodes, the most recent iteration of the scriptnode is ScriptNode Lite (SNLite). Let me suggest using that instead because it exposes quite a bit more back-end functionality.

Find SNLite's development thread / docs / examples: here

One way around this, is a dummy socket.

"""
in dummy v
out verts v
"""

verts.append([])
verts[0].extend([[0,0,0], [1,0,0], [2,0,0]])


If you really don't want to see the socket, then you might do

"""
in dummy v
out verts v
"""

self.inputs[0].hide_safe = True

verts.append([])
verts[0].extend([[0,0,0], [1,0,0], [2,0,0]])


In the above example, the self represents the class instance of that node.