How to lock multiple stages of declarative Jenkins pipeline?

It should be noted that you can lock all stages in a pipeline by using the lock option:

pipeline {
    agent any
    options {
        lock resource: 'shared_resource_lock'
    }
    stages {
        stage('will_already_be_locked') {
            steps {
                echo "I am locked before I enter the stage!"
            }
        }
        stage('will_also_be_locked') {
            steps {
                echo "I am still locked!"
            }
        }
    }
}

This has since been addressed.

You can lock multiples stages by grouping them in a parent stage, like this :

stage('Parent') {
  options {
    lock('something')
  }
  stages {
    stage('one') {
      ...
    }
    stage('two') {
      ...
    }
  }
}

(Don't forget you need the Lockable Resources Plugin)