Yes, that's essentially correct.
However, you should actually over-drive the base of the transistor in order to make sure that it stays in saturation even if conditions change a bit (particularly transistor current transfer ratio, which is difficult to control precisely). This is called a "design margin".
So, assume that in the worst case, the hFE of your transistor is 1/2 or even 1/3 the "nominal" value, and redo your resistor calculation accordingly. There's no harm in introducing more current than needed (within limits, of course) to the base of a transistor.
Since LEDs drop voltage when there's current through them, and since Ohm's law states that:
$$ R = \frac{E}{I} $$
They can certainly be considered to be resistances of a particular value with a known current through them and a known voltage across them.
For instance, one of your your LEDs, with 20mA through it and 2 volts across it, will look like:
$$ R = \frac{E}{I} = \frac{2V}{0.02A} = 100 \text{ ohms}$$
Usually, though, the resistance of the LED is ignored because it's not needed to calculate the values of the ballast resistors or the transistor's base resistor.
The value of the ballast resistor is determined by:
$$ Rs = \frac{Vs - (n \ \ Vf) + Vce(sat)}{If}\text{ ohms} $$
where n is the number of LEDs, Vf is the forward voltage of one LED, Vce(sat) is the transistor's collector to emitter saturation voltage,\$If\$ is the LED forward current, and Vs is the supply voltage.
In your case that works out to:
$$ Rs = \frac{12V - (3 \times 2V) + 0.5V}{0.02A}\text{ 275 ohms} $$
The 330's you have in there will work, no problem, with the LEDs losing a little brightness.
Since there will be three series strings in parallel, the current into the transistor's collector will be 60 milliamperes. Switching transistors doing this kind of work are usually run at a forced beta of ten, which means that for 60 mA into the collector 6 mA is forced into the base.
The base-to-emitter junction of a transistor is basically a diode, so in this case it'll drop about 0.7 volts with 6 mA through it.
That means that with the Arduino supplying 5V to drive the base, about 4.3 volts of that must be dropped across a resistor with 6 mA through it so, from Ohm's law, R = E/I = 4.3V/6mA = 717 ohms. 750 ohms is a standard E24 value and will work well.
Best Answer
There are two possible causes of the blown transistors. First, connecting the base directly to 3.7V will cause excessive base current : it makes sense to limit that with a resistor. 20mA is cautious, 100 ohms would allow 30ma which should be safe.
The second in that - while you cannot "push" excessive current like 2A to the motor - if it draws 600mA when running normally, it may draw much higher currents when starting, or when stalled.
Connect the motor to the PSU again, and stall it with your fingers (don't do this with a high power motor! Use some other means of braking it!) Observe the current it draws when stalled ... I'm guessing somewhere over 3 Amps (you may need to fiddle with the current limit to observe this).
It will momentarily draw that current when starting, and that could be fatal to a 650mA rated transistor...